﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using MGI.AccesoDatos.DataTypes;
using ComunesMGI.DataTypes;
using System.Xml;
using System.IO;

namespace MGI.AccesoDatos.AccesoFS
{
    class FSSistemas
    {
        public DataSistemaFS getSitioSistema(DataCliente cliente, DataSistemaBD sistema)
        {


                //string pathClientesInfo = "C:\\Documents and Settings\\Administrator\\My Documents" + "\\MGI REPOSITORIO\\Proyecto\\Implementacion\\Desarrollo\\INFOCLIENTES";
                string pathClientesInfo = ConfigurationManager.AppSettings.Get("pathInfoClientes");
                DirectoryInfo dirInfo = new DirectoryInfo (pathClientesInfo);
                if (!dirInfo.Exists)
                {
                    throw new Exception("No existe el directorio con informacion de clientes");
                }
                else
                {
                    string pathInfoCliente = pathClientesInfo + "\\" + cliente.Nombre;
                    DirectoryInfo dirInfoCliente = new DirectoryInfo(pathInfoCliente);
                    if (dirInfoCliente.Exists)
                    {
                        FileInfo[] filesSistemas = dirInfoCliente.GetFiles();
                        List<DataSistema>  sistemas = new List<DataSistema>();
                        foreach(FileInfo fileSistema in filesSistemas )
                        {
                            XmlDocument xDoc = new XmlDocument();
                            xDoc.Load(pathInfoCliente + "\\" + fileSistema.Name );
                            XmlNodeList listaNodoSistema = xDoc.GetElementsByTagName("sistema");
                            XmlNodeList listaNodoNombre = ((XmlElement)listaNodoSistema[0]).GetElementsByTagName("nombre");
                            XmlElement nodoNombre = (XmlElement)listaNodoNombre[0];
                            if ((nodoNombre.InnerText).CompareTo(sistema.Nombre)==0)
                            {
                                XmlNodeList listaNodoSitio = ((XmlElement)listaNodoSistema[0]).GetElementsByTagName("sitio");
                                XmlElement nodoSitio = (XmlElement)listaNodoSitio[0];
                                return new DataSistemaFS(nodoSitio.InnerText);
                            }
                         }
                        throw new Exception("No existe el archivo para el sistema");
                                           
                    }
                    else
                    {
                        throw new Exception("No existe el cliente especificado");
                    }
                }
        }

       public bool containSistema(DataCliente cliente, DataSistema sistema) 
       {

           //string pathClientesInfo = "C:\\Documents and Settings\\Administrator\\My Documents" + "\\MGI REPOSITORIO\\Proyecto\\Implementacion\\Desarrollo\\INFOCLIENTES";
           string pathClientesInfo = ConfigurationManager.AppSettings.Get("pathInfoClientes");
           string pathInfoCliente = pathClientesInfo + "\\" + cliente.Nombre;
           string pathInfoSistema = pathInfoCliente + "\\" + sistema.Nombre + ".xml";
           FileInfo fileInfoSistema = new FileInfo(pathInfoSistema);
           return fileInfoSistema.Exists;
                
        }
    }
}
